From cf9ccd673cbbf29d9c9d00c2d379382f0a9c06c0 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 27 Dec 2022 22:49:25 -0800 Subject: show follows and followers --- .../(app)/[username]/(profile)/+layout.server.js | 6 + .../(app)/[username]/(profile)/+layout.svelte | 130 +++++++++++++++++++++ .../(app)/[username]/(profile)/+page.server.js | 21 ++++ src/routes/(app)/[username]/(profile)/+page.svelte | 18 +++ .../[username]/(profile)/followers/+page.server.js | 10 ++ .../[username]/(profile)/followers/+page.svelte | 40 +++++++ .../[username]/(profile)/follows/+page.server.js | 11 ++ .../[username]/(profile)/follows/+page.svelte | 40 +++++++ 8 files changed, 276 insertions(+) create mode 100644 src/routes/(app)/[username]/(profile)/+layout.server.js create mode 100644 src/routes/(app)/[username]/(profile)/+layout.svelte create mode 100644 src/routes/(app)/[username]/(profile)/+page.server.js create mode 100644 src/routes/(app)/[username]/(profile)/+page.svelte create mode 100644 src/routes/(app)/[username]/(profile)/followers/+page.server.js create mode 100644 src/routes/(app)/[username]/(profile)/followers/+page.svelte create mode 100644 src/routes/(app)/[username]/(profile)/follows/+page.server.js create mode 100644 src/routes/(app)/[username]/(profile)/follows/+page.svelte (limited to 'src/routes/(app)/[username]/(profile)') diff --git a/src/routes/(app)/[username]/(profile)/+layout.server.js b/src/routes/(app)/[username]/(profile)/+layout.server.js new file mode 100644 index 00000000..c97c7bdb --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/+layout.server.js @@ -0,0 +1,6 @@ +export async function load({ depends, parent }) { + depends('app:user'); + let { subject } = await parent(); + console.log('SUBJ', subject); + return { subject }; +} diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte new file mode 100644 index 00000000..3fc01721 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -0,0 +1,130 @@ + + +
+ diff --git a/src/routes/(app)/[username]/(profile)/+page.server.js b/src/routes/(app)/[username]/(profile)/+page.server.js new file mode 100644 index 00000000..9c91efae --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/+page.server.js @@ -0,0 +1,21 @@ +import { get } from '$lib/utils'; + +export async function load({ params, parent, url }) { + let { subject } = await parent(); + let { pubkey } = subject; + if (!pubkey) pubkey = params.username; + + let events = []; + + try { + events = await get(`/nostr/${pubkey}`); + } catch (e) { + console.log(`failed to fetch nostr events for ${pubkey}`, e); + } + + events.map((e) => { + e.seen = e.created_at; + }); + + return { events }; +} diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte new file mode 100644 index 00000000..19687ed0 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -0,0 +1,18 @@ + + +{#if events.length} + +{:else} +
+ Nothing here yet. Post your first nostr note! +
+{/if} diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.server.js b/src/routes/(app)/[username]/(profile)/followers/+page.server.js new file mode 100644 index 00000000..a05d324d --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/followers/+page.server.js @@ -0,0 +1,10 @@ +import { get } from '$lib/utils'; + +export async function load({ params, parent, url }) { + let { subject } = await parent(); + let { pubkey } = subject; + + let followers = await get(`/${pubkey}/followers`); + + return { followers }; +} diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.svelte b/src/routes/(app)/[username]/(profile)/followers/+page.svelte new file mode 100644 index 00000000..a718ff15 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/followers/+page.svelte @@ -0,0 +1,40 @@ + + + + +
+ {#if browser} + {#if followers.length} + + +
+
+
+ +
+ +
+ +
+
+ {data.display_name || ''} @{data.username} +
+
+
+
+
+ {:else} +
No followers
+ {/if} + {/if} +
diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.server.js b/src/routes/(app)/[username]/(profile)/follows/+page.server.js new file mode 100644 index 00000000..60b95636 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/follows/+page.server.js @@ -0,0 +1,11 @@ +import { get } from '$lib/utils'; + +export async function load({ params, parent, url }) { + let { subject } = await parent(); + let { pubkey } = subject; + + let follows = await get(`/${pubkey}/follows`); + + console.log('GOT', follows); + return { follows }; +} diff --git a/src/routes/(app)/[username]/(profile)/follows/+page.svelte b/src/routes/(app)/[username]/(profile)/follows/+page.svelte new file mode 100644 index 00000000..87e34501 --- /dev/null +++ b/src/routes/(app)/[username]/(profile)/follows/+page.svelte @@ -0,0 +1,40 @@ + + + + +
+ {#if browser} + {#if follows.length} + + +
+
+
+ +
+ +
+ +
+
+ {data.display_name || ''} @{data.username} +
+
+
+
+
+ {:else} +
No follows
+ {/if} + {/if} +
-- cgit v1.2.3